package com.ruiben.mall;


import com.ruiben.mall.pojo.User;
import com.ruiben.mall.pojo.UserAddress;
import com.ruiben.mall.utils.PagedResult;
import com.ruiben.mall.vo.UserVo;

import java.util.List;

public interface IUserService {

    /*注册用户*/
    int registerUser(User user);

    /**
     *  @Description: 用户登录，根据用户名和密码查询用户
     */
    User queryUserForLogin(String username, String password);

    /**
     *  @Description: 用户登录，根据手机号和密码查询用户
     */
    User queryPhoneForLogin(String phone, String password);

    /**
     * @Description: 判断用户名是否存在
     */
    boolean queryUsernameIsExist(String username);

    /**
     * @Description: 判断手机是否存在
     */
    boolean queryPhoneIsExist(String phone);

    /**
     * 修改用户性别
     */
    /**
     * @Description: 用户修改信息
     */
    boolean updateUserInfo(User user);

    /**
     * @Description: 查询用户信息
     */
    User queryUserInfoById(String userId);

    User queryUserInfoByUsername(String username);

    /**
     * 获取用户列表
     * @return
     */
    PagedResult getUserList(int page, int pageSize);


    /**
     * 获取用户信息
     * @param id
     * @return
     */
    UserVo getUserInfo(String id);

    /**
     * 增加用户地址
     * @param userAddress
     * @return
     */
    boolean addUserAddress(UserAddress userAddress);

    /**
     * 获取用户的收货列表
     * @param userId
     * @return
     */
    List<UserAddress> getUserAddressList(String userId);

    /**
     * 更新用户收货地址
     * @param userAddress
     * @return
     */
    boolean updateUserAddress(UserAddress userAddress);

    boolean delUserAddress(String id);


    boolean setDefaultAddress(String userId,String addressId);

    UserAddress getDefaultAddress(String userId);

    boolean forgetPass(User user);
}

